package com.ecommerce.recommendation.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;

@Configuration
public class CorsConfig {

    @Bean
    public CorsFilter corsFilter() {
        CorsConfiguration config = new CorsConfiguration();
        // 允许的源，这里设置为前端运行的地址 http://localhost:8081 ，也可以用 * （但生产环境不建议直接用 * ，有安全风险）
        config.addAllowedOrigin("http://localhost:8082");
        // 允许的请求方法，如 GET、POST 等
        config.addAllowedMethod("*");
        // 允许的请求头，可根据实际需求调整，* 表示允许所有
        config.addAllowedHeader("*");
        // 是否允许携带 cookie ，如果前端请求需要带 cookie ，要设置为 true ，且 allowedOrigin 不能用 * 
        config.setAllowCredentials(true);

        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        // 对所有路径生效
        source.registerCorsConfiguration("/**", config);

        return new CorsFilter(source);
    }
}